﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ShopNet.Model;

namespace ShopNet
{
    public partial class ControlProduto : System.Web.UI.UserControl
    {
        private string nomeImagem = string.Empty;

        #region Propriedades

        public Shop Master
        {
            get
            {
                return ((Shop)(Page.Master));
            }
        }

        public int IdProduto
        {
            get { return Convert.ToInt32(ViewState["IdProduto"] ?? "0"); }
            set { ViewState.Add("IdProduto", value); }
        }
        public string NomeImagem
        {
            get
            {
                if (string.IsNullOrWhiteSpace(nomeImagem))
                    return "noproduct.jpg";
                return nomeImagem;
            }
            set
            {
                nomeImagem = value; ;
                const string sFileDir = "Imagem/produtos/";

                if (File.Exists(Server.MapPath(sFileDir + nomeImagem)))
                {
                    ibImagem.ImageUrl = sFileDir + nomeImagem;
                }
                else
                {
                    ibImagem.ImageUrl = "Imagem/noproduct.jpg";
                }

                //aImagem.HRef = sFileDir + sFileName;
            }
        }

        public string Nome { get { return lNome.Text; } set { lNome.Text = value; } }
        public string PrecoUnitario { get { return lPrecoUnitario.Text; } set { lPrecoUnitario.Text = value; } }
        public string PrecoDesconto { get { return lPrecoDesconto.Text; } set { lPrecoDesconto.Text = value; } }

        private bool isDisponivel;
        
        public bool IsDisponivel
        {
            get { return isDisponivel; }
            set
            {
                lProdutoIndisponivel.Visible = !value;
                isDisponivel = value;
            }
        }

        public bool ItemImpar { get; set; }

        public void ComDesconto(bool isDesconto)
        {
            lSimbolo.Visible = isDesconto;
            lPrecoUnitario.Visible = isDesconto;
        }

        #endregion

        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {
            
        }

        #endregion

        protected void AddChartClick(object sender, EventArgs e)
        {
            if (Session["cesta"] == null) Session.Add("cesta", new List<ProdutoCarrinho>());

            var lista = (IList<ProdutoCarrinho>)Session["cesta"];
            if (lista.Where(d => d.IdProduto == IdProduto).Count() == 0)
            {
                Produto prod = NServico.Db.Produtos.FirstOrDefault(p => p.IdProduto == IdProduto);
                if (!prod.IsDisponivel)
                {
                    Master.ExibirMensagem(Shop.TipoMensagem.Error, "produto Indisponível.");
                    return;
                }
                ProdutoCarrinho pc = new ProdutoCarrinho { IdProduto = IdProduto, QtdeProduto = 1, QtdeCadaPacote = prod.QtdeCadaPacote };
                pc.Valor = NServico.Db.Produtos.FirstOrDefault(p => p.IdProduto == IdProduto).precoDesconto;
                lista.Add(pc);
            }
            //else
            //    lista[idProduto]++;

            Response.Redirect("Cesta.aspx", true);    
        }
    }
}